Academic Year/course:
2022/23
625 - Bachelor's Degree in Industrial Processes' Data Engineering
29519 - Data Structure and Algorithms
Syllabus Information
Academic Year:
2022/23
Subject:
29519 - Data Structure and Algorithms
Faculty / School:
175 - Escuela Universitaria Politécnica de La Almunia
Degree:
625 - Bachelor's Degree in Industrial Processes' Data Engineering
ECTS:
6.0
Year:
2
Semester:
First semester
Subject Type:
Compulsory
Module:
---
1.1. Aims of the course
In this course, students will improve their ability to design and develop computer programs, emphasizing the identification, design and definition of Abstract Data Types (ADTs) regardless of their implementation. The student will learn to design and implement TADs so that they are reusable, efficient and robust, and to implement them guaranteeing these properties. Some of the most frequently used fundamental TADs will be presented, such as: stacks, queues, lists, search trees, tables, etc., for which different implementation alternatives will be studied and compared. A series of basic algorithmic schemes will also be introduced (such as divide to win, backward search, greed...) and the student will learn to recognize the problems that require this type of schemes for their resolution and how to apply them.
These approaches and objectives are aligned with the following Sustainable Development Goals (SDGs) of the United Nations 2030 Agenda (https://www.un.org/sustainabledevelopment/es/), in such a way that the acquisition of the results of Learning the subject provides training and competence to contribute to some extent to its achievement:
- Goal 7: Affordable and clean energy.
- Goal 8: Decent work and economic growth.
-
Target 8.2 Achieve higher levels of economic productivity through diversification, technological upgrading and innovation, including by focusing on high value-added and labor-intensive sectors.
-
Target 8.4. Progressively improve, by 2030, the efficient production and consumption of global resources and seek to decouple economic growth from environmental degradation, in accordance with the 10-Year Framework of Programs on Sustainable Consumption and Production Patterns, starting with developed countries .
- Objective 9: Industry, innovation and infrastructures.
-
Target 9.1: Develop reliable, sustainable, resilient and quality infrastructure, including regional and cross-border infrastructure, to support economic development and human well-being, with particular emphasis on affordable and equitable access for all.
-
Target 9.5 Increase scientific research and improve the technological capacity of the industrial sectors.
-
Target 9.c Significantly increase access to information and communications technology.
1.2. Context and importance of this course in the degree
Data Structures and Algorithms is a 2nd year subject that appears after the subjects "Fundamentals of Computer Science" and "Programming" (both from 1st year).
It is a compulsory subject that is found within the Data Processing module, in the subject "Algorithms and Data", together with the subjects of "Programming" and "Parallel Programming".
1.3. Recommendations to take this course
The student who takes this subject must have a robust training in programming, being highly recommended to have passed the subject "Programming".
2.1. Competences
Upon passing the subject, the student will have acquired the following skills:
- CB2 - That students know how to apply their knowledge to their work or vocation in a professional way and possess the competencies that are usually demonstrated through the development and defense of arguments and problem solving within their area of study.
- CG03 - Apply techniques for the acquisition, management and treatment of data in Engineering.
- CG05 - Solve technological problems that may arise in data engineering.
- CT01 - Work cooperatively, assuming and respecting the role of the different team members.
- CT05 - Communication of results effectively.
- CT07 - Analyze and solve problems autonomously, adapt to unforeseen situations and make decisions.
- CE01 - Design and implement algorithms in high-level programming languages, using current methodologies.
- CE14 - Build the most appropriate data types and structures to solve a problem.
2.2. Learning goals
The student, to pass this course, must demonstrate the following results...
- It is capable of identifying, designing and defining Abstract Data Types (ADTs) regardless of their implementation.
Design and implement reusable and robust ADTs in a modular programming language or in an object-oriented language.
- Design and implement robust medium-sized programs by identifying, defining and implementing the necessary Abstract Data Types (ADTs).
- It is capable of identifying, using and implementing some fundamental ADTs, such as: stacks, queues, lists, search trees, hash tables and graphs.
- It is able to compare different TAD implementation alternatives with respect to algorithm execution time and memory usage, and to select the most appropriate one for each problem or context.
- Know and apply the basic algorithmic schemes (such as divide to win, backward search, greed...) to solve problems.
2.3. Importance of learning goals
Data Structures and Algorithms will constitute a solid base in the student's training for the design and development of systems or programming projects of increasing size and complexity, whether based on modular design or object-oriented design, always seeking the encapsulation, quality, efficiency and reusability of the software.
A set of frequently used TADs and algorithms will also be presented, and that every future Data Engineer must know and know how to use in order to design solutions in the new contexts or problems they face.
3. Assessment (1st and 2nd call)
3.1. Assessment tasks (description of tasks, marking system and assessment criteria)
The evaluation process will include two types of action:
- A continuous evaluation system, which will be carried out throughout the learning period.
- A global assessment test, reflecting the achievement of learning results, at the end of the teaching period.
1-Continuous evaluation system.
Following the spirit of Bologna, regarding the degree of involvement and continued work of the student throughout the course, the evaluation of the subject considers the continuous evaluation system as the most appropriate to be in line with the guidelines set by the new framework from the EHEA.
The continuous evaluation system will have the following group of qualifying activities:
- Works: The works will consist of practical exercises, solution to proposed problems, questionnaires, etc. The correctness and quality of the results will be assessed. These practices will be carried out in groups of a maximum of 20 students. The percentage with respect to the global mark of all these works will be 40%.
- Assessment tests: There are three throughout the course. The percentage with respect to the global mark of each evaluation test will be 20%.
It is necessary to pass the works and written tests separately so that they can contribute to the average of the final grade.
To opt for the Continuous Assessment system, you must attend at least 80% of the face-to-face activities (practices, technical visits, classes, etc.)
2-Global final evaluation test.
The student must opt for this modality when, due to their personal situation, they cannot adapt to the rhythm of work required in the continuous evaluation system, have suspended or want to upload a grade having participated in said evaluation methodology.
The global final evaluation test will have the following group of qualifying activities:
- Exam: It is carried out in the official calls. This option can always be followed even though the student has used the continuous assessment system. (50% of the final grade).
- The assignments, practical exercises, solution to proposed problems, questionnaires, etc., that have not been carried out during the course, and can be delivered in a new version on the day of the call. (50% of the final grade).
4. Methodology, learning tasks, syllabus and resources
4.1. Methodological overview
The subject is strongly based on practice, so it has many practical works in class.
The organization of teaching will be carried out using the following steps:
- Lectures: Theoretical activities carried out mainly through exposition by the teacher, where the theoretical supports of the subject are displayed, highlighting the fundamental, structuring them in topics and or sections, interrelating them.
- Practice Sessions: The teacher resolves practical problems or cases for demonstrative purposes. This type of teaching complements the theory shown in the lectures with practical aspects.
- Laboratory Workshop: The lecture group is divided up into various groups, according to the number of registered students, in order to make up smaller sized groups.
- Individual Tutorials: Those carried out giving individual, personalized attention with a teacher from the department. Said tutorials may be in person or online.
The approach, methodology and assessment of this guide are intended to be the same for any teaching scenarios. They will be adapted to the social-health situation at any particular time, as well as to the instructions given by the authorities concerned.
Further information regarding the course will be provided on the first day of class.
4.2. Learning tasks
Face-to-face generic activities:
- Theory Classes: The theoretical concepts of the subject are explained and illustrative examples are developed as a support to the theory when necessary.
- Practical Classes: Problemas and practical classes are carried out, complementary to the theoretical concepts studied.
- Laboratory Workshop: This work is tutored by a teacher, in groups of no more than 20 students.
Generic non-class activities
- Study and understanding of the theory taught in the lectures.
- Understanding and assimilation of the problems and practical classes solved in the practical classes.
- Solving proposed problems, project, etc.
- Preparation of laboratory workshops, preparation of summaries and reports.
- Preparation of the written tests for continuous assessment and final exams.
4.3. Syllabus
The course program is structured around two components of complementary content:
Theoretical Contents:
- Analysis and design of algorithms.
- Programming with Abstract Data Types.
- Linear and Hierarchical Data Structures.
- Recursive, search and sort algorithms.
Practical contents:
Every part has related practices. As the concepts are shown, the practices are going to be presented, in the classroom or in Moodle platform.
4.4. Course planning and calendar
The subject has 6 ECTS credits, which represents 150 hours of student work in the subject during the trimester, in other words, 10 hours per week for 15 weeks of class.
A summary of a weekly timetable guide can be seen in the following table.
- 1 hour of lectures
- 3 hour of laboratory workshops
- 6 hours of other activities
Nevertheless, the previous table can be shown in greater detail, taking into account the following overall distribution:
- 15 hours of lectures.
- 41 hours of laboratoy workshop.
- 4 hours of wirtten assessment tests, two hours per test.
- 45 hours of exercices and tutelated work, divided up the 15 weeks of the second semester.
- 45 hours of personal study, divided up the 15 weeks of the second semester.
There is a tutorial calendar timetable set by the teacher taht can be requested by the students who want a tutorial.